#define  _CRT_SECURE_NO_WARNINGS

//1
//#include <iostream>
//using namespace std;
//int arr[4];
//int main() {
//	int cnt = 0;
//	for (int i = 1; i <= 4; i++) cin >> arr[i];
//	for (int i = 1; i <= 4; i++) {
//		if (arr[i] == i) {
//			cnt++;
//		}
//	}
//	cout << cnt << endl;
//	return 0;
//}


//2
//#include <iostream>
//using namespace std;
//int n, k;
//int main() {
//	cin >> n >> k;
//	if (k == n - 1) {
//		cout << -1 << endl;
//		return 0;
//	}
//	else {
//		for (int i = 1; i <= k; i++) {
//			cout << i << ' ';
//		}
//		for (int i = n; i > k; i--) {
//			cout << i << ' ';
//		}
//	}
//	return 0;
//}



//3
//#include <iostream>
//using namespace std;
//const int N = 100005;
//int n, arr[2 * N], brr[N];
//int main() {
//	int ans = 0;
//	cin >> n;
//	for (int i = 0; i < 2 * n; i++)cin >> arr[i];
//	for (int i = 0; i < 2 * n; i++) {
//		if (arr[i] <= n && brr[arr[i]] != 2) {
//			brr[arr[i]]++;
//			ans++;
//		}
//	}
//	cout << ans << endl;
//	return 0;
//}



//4
//#include <iostream>
//using namespace std;
//const int N = 505;
//int n, m, arr[N][N], brr[N * N], crr[N * N];
//int main() {
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);
//	int ans, len = 0;
//	cin >> n >> m;
//	for (int i = 1; i <= n; i++) {
//		for (int j = 1; j <= m; j++) {
//			cin >> arr[i][j];
//			if (arr[i][j] == min(i, j)) ans++;
//			else {
//				brr[len] = arr[i][j];
//				crr[len] = min(i, j);
//				len++;
//			}
//		}
//	}
//	int flag = 0;
//	for (int i = 0; i < len; i++) {
//		for (int j = 0; j < len;j++) {
//			if (brr[i] == crr[j]) {
//				flag = 1;
//				if (brr[j] == crr[i]) {
//					ans += 2;
//					cout << ans << '\n';
//					return 0;
//				}
//			}
//		}
//	}
//	if (flag)ans++;
//	cout << ans << '\n';
//	return 0;
//}

//#include <iostream>
//using namespace std;
//const int N = 505;
//int n, m, arr[N][N], brr[N * N], crr[N * N];
//int main() {
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);
//	int ans = 0, len = 0;
//	cin >> n >> m;
//	for (int i = 1; i <= n; i++) {
//		for (int j = 1; j <= m; j++) {
//			cin >> arr[i][j];
//			if (arr[i][j] == min(i, j))ans++;
//			else {
//				brr[len] = arr[i][j];
//				crr[len] = min(i, j);
//				len++;
//			}
//		}
//	}
//	int flag = 0;
//	for (int i = 0; i < len; i++) {
//		for (int j = i + 1; j < len; j++) {
//			if (crr[i] == brr[j] && brr[i] == crr[j]) {
//				ans += 2;
//				cout << ans << '\n';
//				return 0;
//			}
//			else if (crr[i] == brr[j] || brr[i] == crr[j]) {
//				flag = 1;
//			}
//		}
//	}
//	if (flag)ans++;
//	cout << ans << '\n';
//	return 0;
//}


//5
//#include <iostream>
//#include <algorithm>
//#include <vector>
//using namespace std;
//const int N = 300005;
//int n;
//vector<int> arr, v, v1;
//int SlideWindow(int k) {
//	int ans = 0;
//	for (int i = 0; i <= n - k; i++) {
//		v.assign(arr.begin() + i, arr.begin() + i + k);
//		sort(v.begin(), v.end());
//		for (int i = 0; i < k; i++) {
//			if (v[i] == i + 1)ans++;
//		}
//	}
//	return ans;
//}
//int main() {
//	int cnt = 0;
//	cin >> n;
//	for (int i = 1; i <= n; i++) {
//		int a;
//		cin >> a;
//		arr.push_back(a);
//	}
//	for (int i = 1; i <= n; i++) {
//		cnt += SlideWindow(i);
//	}
//	cout << cnt;
//
//	return 0;
//}



//5
//#include <iostream>
//using namespace std;
//const int N = 300005;
//int n, arr[N], idx[N];
//int main() {
//	cin >> n;
//	for (int i = 1; i <= n; i++) {
//		cin >> arr[i];
//		idx[arr[i]] = i;
//	}
//	int l = idx[1], r = idx[1];
//	int ans = 0;
//	for (int i = 1; i <= n; i++) {
//		l = min(idx[i], l);
//		r = max(idx[i], r);
//		ans += l * (n - r + 1);
//	}
//	cout << ans << endl;
//	return 0;
//}


//6
//#include <iostream>
//using namespace std;
//int main() {
//	cout << "hello world" << endl;
//	return 0;
//}

